package com.platform.modules.prj.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.platform.modules.prj.entity.PrjProjectEntity;
import com.platform.modules.prj.vo.ProjectPersonnelVo;
import com.platform.modules.sys.entity.SysUserEntity;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * Service接口
 *
 * @author Zhouxw
 * @date 2019-06-20 17:17:28
 */
public interface PrjProjectService extends IService<PrjProjectEntity> {

    /**
     * @descr 查询所有列表
     * @param params 查询参数
     * @return List
     */
    List<PrjProjectEntity> queryAll(Map<String, Object> params);

    /**
     * @descr 分页查询
     * @param params 查询参数
     * @return Page
     */
    IPage<PrjProjectEntity> queryPage(Map<String, Object> params);

    /**
     * @descr 新增
     * @param prjProject 
     * @return 新增结果
     */
    boolean add(PrjProjectEntity prjProject);

    /**
     * @descr 根据主键更新
     * @param prjProject 
     * @return 更新结果
     */
    boolean update(PrjProjectEntity prjProject);

    /**
     * @descr 根据主键删除
     * @param id id
     * @return 删除结果
     */
    boolean delete(String id);

    /**
     * @descr 根据主键批量删除
     * @param ids ids
     * @return 删除结果
     */
    boolean deleteBatch(String[] ids);
    /**
     * @descr 查询类似项目编号
     * @param prjCode 查询参数
     * @return List
     */
    String queryPrjCode(@Param("prjCode")String prjCode);
        
    /**
     * @descr 创建项目管理员帐号
     * @param prjId
     */
    void createProjectGLY(String prjId);

    /**
     * @desc
     * @param params
     * @return
     */
	Page queryPrjSuperviseProjectPage(Map<String, Object> params);
    
    
	/**
	 * 根据项目ID查询项目经理
	 * @param prjId 项目id
	 * @return
	 */
	List<SysUserEntity> projectManagerByApp(String prjId);

	/**
	 * 根据项目ID查询项目相关人员
	 * @param prjId 项目id
	 * @return
	 */
	List<ProjectPersonnelVo> projectPersonnelByApp(String prjId);
	
	PrjProjectEntity infoByApp(String prjId);
	
	PrjProjectEntity info(String prjId);
}
